package com.redepronik.negosys.rrhh.entity;

import java.io.Serializable;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

/**
 * The persistent class for the ciudad database table.
 * 
 */
@Entity
@Table(schema = "rrhh", name = "ciudad")
@NamedQuery(name = "Ciudad.findAll", query = "SELECT c FROM Ciudad c")
public class Ciudad implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@SequenceGenerator(allocationSize = 1, name = "CIUDAD_CIUDADID_GENERATOR", sequenceName = "RRHH.CIUDAD_CIUDADID_SEQ")
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "CIUDAD_CIUDADID_GENERATOR")
	@Column(unique = true, nullable = false)
	private Integer ciudadid;

	@Column(nullable = false)
	private Boolean activo;

	@Column(nullable = false, length = 100)
	private String nombre;

	// bi-directional many-to-one association to Provincia
	@ManyToOne
	@JoinColumn(name = "provinciaid", nullable = false)
	private Provincia provincia;

	// bi-directional many-to-one association to Persona
	@OneToMany(orphanRemoval = true, cascade = CascadeType.ALL, mappedBy = "ciudad")
	private List<Persona> personas;

	public Ciudad() {
	}

	public Persona addPersona(Persona persona) {
		getPersonas().add(persona);
		persona.setCiudad(this);

		return persona;
	}

	public Boolean getActivo() {
		return this.activo;
	}

	public Integer getCiudadid() {
		return this.ciudadid;
	}

	public String getNombre() {
		return this.nombre;
	}

	public List<Persona> getPersonas() {
		return this.personas;
	}

	public Provincia getProvincia() {
		return this.provincia;
	}

	public Persona removePersona(Persona persona) {
		getPersonas().remove(persona);
		persona.setCiudad(null);

		return persona;
	}

	public void setActivo(Boolean activo) {
		this.activo = activo;
	}

	public void setCiudadid(Integer ciudadid) {
		this.ciudadid = ciudadid;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public void setPersonas(List<Persona> personas) {
		this.personas = personas;
	}

	public void setProvincia(Provincia provincia) {
		this.provincia = provincia;
	}

}